There are many situations where it is required to transfer content such as a file or other information between two devices or communications nodes. For example this may be between nodes which have fixed locations and where the communications network is wired or wireless. For example, files may need to be transferred between fixed nodes in a data centre where wired connections exist between the nodes. Other situations arise where the nodes are mobile, such as personal digital assistants (PDAs), mobile telephones, laptop computers and the like. In some of these situations connections between nodes may be short-lived and lossy.
A variety of communications network protocols have been developed to deal with these various content transfer situations. For example, some of these use coding schemes to encode the data such that if an arbitrary set of data packets are received, the receiver is able to reconstruct the original data. However, a drawback of using coding schemes is the computational overhead of encoding and decoding. Other communications network protocols use acknowledgements and retransmission whereby the receiver explicitly requests retransmission of missed packets.
Generally speaking it is desired to improve on existing communications protocols to enable data to be transferred between two communications network nodes efficiently, accurately and with reduced computational overhead. It is desired to achieve this in a manner suitable for transferring content over many different types of connection, including fixed, wired connections and connections which are short-lived and lossy.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known communications network protocols.